<?php

namespace App;

use App\Models\CartItem;
use App\Models\Product;
use App\Models\UserAddress;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'email_verified',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
    protected $casts=[
        'email_verified'=> 'boolean',
    ];
    public function addresses(){
        return $this->hasMany(UserAddress::class);
    }
    public function favoriteProducts(){
        return $this->belongsToMany(Product::class, 'user_favorite_products')->withTimestamps();
    }
    public function cartItems(){
        return $this->hasMany(CartItem::class);
    }
}
